package org.example.discovery;

import org.example.common.ServiceConfig;
import org.example.common.ServiceConfigParam;

import java.util.List;

/**
 * 接口：定义了用于服务发现和注册的操作规范
 *
 * @author sxt
 */
public interface IServiceDiscovery {

    /**
     * 根据服务配置从注册中心发现服务集合
     *
     * @param serviceConfigParam 服务参数
     * @return 发现的服务集合
     */
    List<ServiceConfig> discoveryService(ServiceConfigParam serviceConfigParam);

    /**
     * 服务注册
     *
     * @param serviceConfigParam 服务参数
     * @return 注册是否成功
     */
    boolean registryService(ServiceConfigParam serviceConfigParam);

    /**
     * 服务移除
     * @param serviceConfigParam 服务参数
     * @return 移除是否成功
     */
    boolean unRegistryService(ServiceConfigParam serviceConfigParam);
}
